package cn.hh.basic.mapper;

import cn.hh.basic.query.BaseQuery;

import java.util.List;

/**
 *  Mapper接口: 公共的
 */
public interface BaseMapper<T> {  // 泛型
     // mapper的方法定义要贴近数据库  例如: mapper的添加方法取名 save  删除方法取名 remove
    // service的方法定义要贴近前端用户  例如: service的添加方法取名 add  删除方法取名 delete

    // 加载所有
    List<T> loadAll();

    // 加载单个对象
    T loadById(Long id);

    // 保存一个对象
    void save(T t);

    // 移出一个对象
    void remove(Long id);

    // 更新一个对象
    void update(T t);

    // 查询总数量
    Long queryCount(BaseQuery baseQuery);

    // 查询当前页的数据
    List<T> queryData(BaseQuery baseQuery);

    // 批量删除
    void patchDel(List<Long> ids);
}
